<?php  
header("Content-Type:text/html;charset=utf8");  


/*
	过滤特殊字符，字符串或者数组都可以过滤
*/ 
function collect_strip_tags($str){
	if(!is_array($str)){
		$str=htmlspecialchars($str);
	}
	else{
		// array_walk_recursive() 函数对数组中的每个元素应用回调函数。
		array_walk_recursive($str,"_collect_strip_tags");
	}
	return $str;
}

function _collect_strip_tags($str){
	$str = collect_strip_tags($str);
}   

/*
	采集列表分页区域
*/
function collect_urls_area($start,$end,$str){
	$a = collect_diff($start, $end, $str);
	//return(collect_strip_tags($a));
	return $a;
}

/*
	采集url链接
*/

function collect_urls($url,$start,$end){
	$f = file_get_contents($url);
	$str = collect_diff($start, $end, $f);
	
	// 匹配链接标签
	$regex='/<a\s.*?href\s*?=\s*([\"\']?)([^\s\>\'\"]+)\1.*?>.*?<\/a>/i';
	preg_match_all($regex,$str,$data,PREG_PATTERN_ORDER);
	
	// 保存url地址
	/*foreach($data[2] as $k=>$v){
		
	}*/
	return $data[2];
	
}

/*
	匹配一头一尾之间差的内容(正则方式) ，与collect_diff是一样的功能，唯一区别在于这个是用正则实现的
*/
function collect_diff_preg($start,$end,$str){
	preg_match("/(".$start.")(.*?)(".$end.")/is",$str,$content);
	return $content[2];
}

// 字符串截取函数 （普通方式）
// 一个简单的php采集例子
// http://www.huikon.cn/post-51.html
function collect_diff($start, $end, $str) 
{  
  $temp = explode($start, $str, 2);  
  $content = explode($end, $temp[1], 2);  
  return $content[0];  
}  

/*
	调试输出
*/
function collect_dump($var, $label = null, $strict = true, $echo = true) {
	$label = ($label === null) ? '' : rtrim ( $label ) . ' ';
	$charset = defined ( 'CHARSET' ) ? CHARSET : 'gb2312';
	if (strtolower ( $charset ) == 'gbk')
		$charset = 'gb2312';
	if (! $strict) {
		if (ini_get ( 'html_errors' )) {
			$output = print_r ( $var, true );
			$output = "<pre>" . $label . htmlspecialchars ( $output, ENT_QUOTES, $charset ) . "</pre>";
		} else {
			$output = $label . " : " . print_r ( $var, true );
		}
	} else {
		ob_start ();
		var_dump ( $var );
		$output = ob_get_clean ();
		if (! extension_loaded ( 'xdebug' )) {
			$output = preg_replace ( "/\]\=\>\n(\s+)/m", "] => ", $output );
			$output = '<pre>' . $label . htmlspecialchars ( $output, ENT_QUOTES, $charset ) . '</pre>';
		}
	}
	if ($echo) {
		echo ($output);
		return null;
	} else {
		return $output;
	}
}



$a = collect_urls("http://www.huikon.cn/",'<div id="pagenavi">',"»</a></div>");
collect_dump($a);



$str = file_get_contents("http://huikon.cn/post-253.html");
//$str=iconv("UTF-8", "GB2312", $str);//utf-8字符编码转GB2312  
echo ('标题: ' . collect_diff2("<title>", "</title>", $str)); //采集标题
echo ('<br />内容: ' . collect_diff('<p class="date">', '<p class="att">', $str)); //采集内容  






$str="<a href= http://www.huoyue.org  target=_blank >一</a><a href=http://www.huoyue.org  target=_blank>二</a><a href=http://www.huoyue.org>三</a><a href=http://www.huoyue.org  target=_blank >四</a><a href=\’http://www.huoyue.org\’  target=_blank>五</a><a href=\"http://www.huoyue.org\" target=_blank>六</a><a href  =\"http://www.huoyue.org\" target=_blank >七</a>";
echo "$str<br/><br/>".collect_strip_tags($str)."<br/><br/>";
var_dump(collect_strip_tags(collect_urls($str)));

//$aa = file_get_contents("http://vip.book.sina.com.cn/book/index_39321.html");
//var_dump(collect_diff('<div id="box_bookintro"','<a onclick="expand_intro.start()"',$aa));



?>  